package com.kingyun.gpsinspection.purificationservice.dao.mapper.tdm;


import com.kingyun.gpsinspection.purificationservice.facade.model.activiti.HistoricNode;
import com.kingyun.gpsinspection.purificationservice.facade.model.tdm.Problem;
import com.kingyun.gpsinspection.purificationservice.facade.model.tdm.ProblemVo;

import java.util.List;
import java.util.Map;

public interface TdmProblemMapper {
    int deleteByPrimaryKey(String problemId);

    int insert(Problem record);

    int insertSelective(Problem record);

    Problem selectByPrimaryKey(String problemId);

    int updateByPrimaryKeySelective(Problem record);

    int updateByPrimaryKey(Problem record);

    /**
     * 根据主键查询包装类
     *
     * @param problemVo
     * @return
     */
    ProblemVo selectByPrimaryKeyNew(ProblemVo problemVo);

    /**
     * 根据主键修改部分字段
     *
     * @param record
     * @return
     */
    int updateByPrimaryKeyNew(Problem record);

    /**
     * 批量软删除
     *
     * @param list
     * @return
     */
    int updateStateByIds(List<String> list);

    /**
     * 根据主键更新指派人ID
     *
     * @param problem
     * @return
     */
    int updateAssignedPersonById(Problem problem);

    /**
     * 根据orgId查询问题总数，用于首页统计报表
     *
     * @param orgId 组织id
     * @return 问题总数
     */
    Integer queryProblemCountByOrgId(String orgId);

    /**
     * 查询当日问题概况(根据问题类型)
     *
     * @param problemVo 问题查询条件封装类
     */
    List<Map> queryProblemSituation(ProblemVo problemVo);

    /**
     * 今日问题分析(是否处置)
     *
     * @param orgId
     */
    List<Map> queryProblemAnalysis(String orgId);

    /**
     * 查询历史审批记录
     *
     * @param businessId 业务id
     */
    List<HistoricNode> queryApprovalRecords(String businessId);
}